package cn.dong.cms.service.impl;

import cn.dong.cms.domain.Ad;
import cn.dong.cms.mapper.AdMapper;
import cn.dong.cms.service.AdService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * <p>
 * 广告推荐 服务实现类
 * </p>
 *
 * @author You-Dong
 * @since 2021-02-17
 */
@Service
public class AdServiceImpl extends ServiceImpl<AdMapper, Ad> implements AdService {

    @Autowired
    private AdService adService;

    /**
     * 使用redis缓存
     * 1. 查询redis缓存是否存在需要的数据
     * 2. 如果缓存不存在则去数据库查询对应的数据，并且保存到redis缓存中
     * 3. 如果缓存存在则读取 （一个注解搞定这三步骤）
     * @param id
     * @return
     */
    @Override
    @Cacheable(key = "'findByTypeId'", value = "index")
    public List<Ad> findByTypeId(String id) {
        QueryWrapper<Ad> wrapper = new QueryWrapper<Ad>();
        wrapper.eq("type_id", id);
        wrapper.orderByAsc("sort");
        List<Ad> list = adService.list(wrapper);
        return list;
    }
}
